HEX
Server: Apache/2.4.68 (Debian)
System: Linux as-cs-widget-demo-us-central1 6.1.0-44-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.164-1 (2026-03-09) x86_64
User: root (0)
PHP: 8.2.32
Disabled: NONE
Upload Files
File: /var/www/kevin-demo/wp-content/plugins/woocommerce-payments/src/Internal/Proxy/HooksProxy.php
<?php
/**
 * Class HooksProxy
 *
 * @package WooCommerce\Payments
 */

namespace WCPay\Internal\Proxy;

/**
 * Hooks Proxy
 *
 * Used for accessing WP hooks, incl. actions and filters.
 *
 * This class currently only contains methods to add filters and actions.
 * If you need any other hook-related methods (ex. `do_action`, `apply_filters`),
 * etc., feel free to add them to the class.
 */
class HooksProxy {
	/**
	 * Add a filter.
	 *
	 * @param string   $hook_name     The name of the filter to add the callback to.
	 * @param callable $callback      The callback to be run when the filter is applied.
	 * @param int      $priority      Priority amongs other callbacks.
	 *                                Low = early, high = late. Optional. Default 10.
	 * @param int      $accepted_args The number of arguments the callback accepts. Optional. Default 1.
	 */
	public function add_filter( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) {
		add_filter( $hook_name, $callback, $priority, $accepted_args );
	}

	/**
	 * Add an action.
	 *
	 * @param string   $hook_name     The name of the action to add the callback to.
	 * @param callable $callback      The callback to be run when the filter is applied.
	 * @param int      $priority      Priority amongs other callbacks.
	 *                                Low = early, high = late. Optional. Default 10.
	 * @param int      $accepted_args The number of arguments the callback accepts. Optional. Default 1.
	 */
	public function add_action( $hook_name, $callback, $priority = 10, $accepted_args = 1 ) {
		add_action( $hook_name, $callback, $priority, $accepted_args );
	}

	/**
	 * Calls the callback functions that have been added to a filter hook.
	 *
	 * @param string $hook_name The name of the filter hook.
	 * @param mixed  $value     The value to filter.
	 * @param mixed  ...$args   Optional. Additional parameters to pass to the callback functions.
	 * @return mixed The filtered value after all hooked functions are applied to it.
	 */
	public function apply_filters( $hook_name, $value, ...$args ) {
		return apply_filters( $hook_name, $value, ...$args );
	}
}